This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present invention, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Over the past several decades, computer technologies have become increasingly sophisticated. Additionally, with advancements in networking, computer systems are used in an increasing number of applications and are common tools used in businesses, schools, and homes. Indeed, computer systems have become easier to use and more capable as technologies have been developed to accommodate current and future demands. In particular, mass storage technologies have been developed to increase the storing capacity and speed of access of digital data used by applications operating on the computer systems.
A typical mass storage system may include a redundant array of inexpensive disks commonly referred to as a RAID array. The RAID array may be implemented to increase the performance and reliability of a mass storage device. A RAID array implements a redundant architecture using a memory controller commonly referred to as a RAID controller. The RAID controller controls the writing of data to and the reading of data from the RAID array. In a standard configuration, the storage units of the RAID array are divided into blocks of 512 bytes. Accordingly, in a RAID system, user applications typically are designed to write and read data in blocks of 512 bytes.
In some implementations the RAID controller generates error detection code (EDC) data when writing data to the RAID array in order to verify the integrity of the data when it is read back from the storage units by an application. The EDC data is typically eight bytes long and, because of the block size, it is not stored with its corresponding user application data, as the user application data completely fills an entire block. During a read operation, therefore, the user application data is retrieved from one location and the EDC data is retrieved from another. Because the RAID controller accesses two separate storage locations per read operation, performance degradation can occur. In order to alleviate the performance degradation, an alternative method modifies the size of the blocks to allow for EDC data to be stored with the application data. However, altering the block size may incur increased costs and complications. For example, some disk interface technologies may not support the altered block size, resulting in compatibility issues.